Amazon Cognito
Cognito PW認証 + カスタム認証 with Amplify Library
JavaScript
Amplify.configure の authenticationFlowTypeにCUSTOM_AUTHを設定する
Auth.signIn(username, password)を呼び出す
それだけで、勝手にPW > カスタム認証という流れになる
画面側はユーザ名、パスワードを同時に入力する感じで問題ない
Lambda
定義で、1. PW認証、2. カスタム認証、という形で作る
セキュリティ
アドバンスセキュリティ
色々ある
IP制限もある
料金が高そう
概要
IP制限、その他ルールなど使用できる
ルール1つで1ドル/月
WAF自体のACLで5ドル/月
情報
Cognitoからの設定
WAFでの指定IPだけ許可
やり方
やってみたやり方は上のWAFでの指定IPだけ許可の方法で、対象をユーザープールにした
WAF & Shield に行く
IP setsを作成
Regionで、ユーザープールがあるリージョンを指定
許可したいIPを設定(CIDR)
Web ACLを作成
Regional resourcesを選択
Regionで、ユーザープールがあるリージョンを指定
Add AWS Resourcesボタンを謳歌し、Cognito ユーザプールを選べるのでそれを追加
Add rulesで、Add my own rules and rule groupsを選択
Rule builderを選択
RuleのTypeは、Regular ruleを選択
If a requestは、doesn't match the statement (NOT)を選択
StatementのInspectは、Originates from IP address in を選択
StatementのIP setは、IP setsで作成したルールを選択
StatementのIP address to use as the originating addressは、Source IP addressを選択
ActionでBlockを選択
後は保存の流れ
Web ACLのIP ruleだとうまくいかなかった
なぜ?
ACL自体のデフォルト設定?がAllowになっていたため、全てが許可されていたみたい
step2のAdd rules and rule groupsでデフォルトが設定できる
Default web ACL action for requests that don't match any rulesのDefault actionで、Blockを選択
デフォルト設定をBlockにした状態で、IP Ruleで許可したい設定をすればIP setsで設定したIP以外だとブロックされた